package com.easydisk.file.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 分片上传-分片任务记录
 * </p>
 *
 * @author word
 * @since 2023-10-03
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("upload_task")
public class UploadTask implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("\"id\"")
    private Long id;

    /**
     * 分片上传的uploadId
     */
    @TableField("upload_id")
    private String uploadId;

    /**
     * 文件唯一标识（md5）
     */
    @TableField("file_identifier")
    private String fileIdentifier;

    /**
     * 文件名
     */
    @TableField("file_name")
    private String fileName;

    /**
     * 所属桶名
     */
    @TableField("bucket_name")
    private String bucketName;

    /**
     * 文件的key
     */
    @TableField("object_key")
    private String objectKey;

    /**
     * 文件大小（byte）
     */
    @TableField("total_size")
    private Long totalSize;

    /**
     * 每个分片大小（byte）
     */
    @TableField("chunk_size")
    private Long chunkSize;

    /**
     * 分片数量
     */
    @TableField("chunk_num")
    private Integer chunkNum;

    /**
     * 过期时间
     */
    @TableField("expiration_time")
    private Date expirationTime;

    /**
     * 创建人id
     */
    @TableField("create_user")
    private Long createUser;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;
}
